package dominio.camadaneural;

import java.util.List;

import dominio.neuronio.Neuronio;
import dominio.padrao.Padrao;

public interface CamadaNeural {

	/**
	 * Método que adiciona um neurônio a camada neural
	 * @param neuronio
	 */
	void adicionarNeuronio(Neuronio neuronio);
	
	/**
	 * Método que remove determinado neurônio da camada neural
	 * @param neuronio
	 */
	boolean removerNeuronio(Neuronio neuronio);
	
	/**
	 * Método que recebe um vetor de entradas ou estimulos e propaga
	 * esses estimulos para todos os neurônios da camada.  
	 * 
	 * @param estimulos
	 * @return
	 */
	double[] estimularCamada(Padrao padrao);
	
	/**
	 * @return
	 */
	List<Neuronio> getNeuronios();
	
}
